package com.info.zhiduoduo.core.service;

import com.info.zhiduoduo.repository.dto.partner.PartnerDetailDto;
import com.info.zhiduoduo.repository.dto.partner.PartnerSubDto;
import com.info.zhiduoduo.repository.entity.marketingcooperative.MarketingCooperativeRecord;
import com.info.zhiduoduo.repository.entity.partner.PartnerBrokerage;
import com.info.zhiduoduo.repository.entity.partner.PartnerCompany;
import com.info.zhiduoduo.repository.entity.partner.PartnerRecommendCompany;
import com.info.zhiduoduo.repository.entity.partner.PartnerVaccineRecord;
import com.info.zhiduoduo.repository.entity.partner.PartnerWithdraw;

public interface WxPartnerMessageService {

	/**
	 * 合伙人通过实名认证收到通知
	 *
	 * @param acctid
	 * @return
	 */
	boolean partnerAuthState(int acctid);

	/**
	 * 合伙人续约成功
	 *
	 * @param acctid
	 * @return
	 */
	boolean partnerRenew(int acctid);

	/**
	 * 邀请的合伙人注册成功，发给邀请者
	 *
	 * @param realname
	 * @param openid
	 * @return
	 */
	boolean noticeInvitePartner(String realname, String openid,Integer partnerid);

	/**
	 * 邀请的企业注册成功，发给邀请者
	 *
	 * @param realname
	 * @param openid
	 * @return
	 */
	boolean noticeInviteCompany(String realname, String openid,Integer compId);

	/**
	 * 合伙人推荐企业，审核结果通知
	 *
	 * @return
	 */
	boolean notifyPartnerCompanyVerify(PartnerRecommendCompany recommendCompany);

	/**
	 * 合伙人推荐企业，后台直接添加企业，设置分润比例成功
	 *
	 * @return
	 */
	boolean notifyPartnerCompanyAdded(PartnerCompany partnerCompany) ;
	/**
	 * 合伙人设置分润比例成功
	 *
	 * @return
	 */
	boolean notifyPartnerRatioEdit(PartnerCompany partnerCompany) ;

	/**
	 * 合伙人的佣金到账通知
	 *
	 * @param brokerage
	 * @param projectname
	 * @return
	 */
	boolean notifyPartnerBrokerageSettled(PartnerBrokerage brokerage, String projectname);

	/**
	 * 通知合伙人，提现到账
	 *
	 * @param withdraw
	 * @return
	 */
	boolean notifyPartnerWithdrawSucceed(PartnerWithdraw withdraw);

	/**
	 * 发送公告给指定用户
	 *
	 * @param title
	 * @param openid
	 * @return
	 */
	boolean sendNotice(String title, String url, String openid);

	/**
	 * 合伙人注册一周后，发送欢迎语
	 *
	 * @return
	 */
	boolean sendWelcomeNotice(PartnerDetailDto partner);

	/**
	 * 合伙人绩效通知
	 *
	 * @param partner
	 * @param type 1：上个月 2：过去2个月 3：过去3个月
	 * @param count 当前周期内的绩效 个数
	 * @return
	 */
	boolean sendPerformanceNotice(PartnerDetailDto partner, int type, int count);

	/**
	 * 发送问卷调查公告通知
	 */
	boolean sendSurveyNotice(String title, String content, String url, String openid);


	/**
	 * 发送公告给指定用户
	 *
	 * @param sub
	 * @return
	 */
	boolean noticeSubPartnerAdded(PartnerSubDto sub);

	/**
	 * 发送合伙人每月初的绩效kpi通知
	 *
	 * @param partner
	 * @param kpiStr
	 * @return
	 */
	boolean notifyPartnerKpi(PartnerDetailDto partner, String kpiStr);

	/**
	 * 通知合伙人创建工作室
	 *
	 * @param partnerid
	 * @return
	 */
	boolean notifyPartnerRegisterStudio(int partnerid);

	/**
	 * 合伙人提交抗原分销申请，通知合伙人胡晓峰
	 *
	 * @param record
	 * @return
	 */
	boolean notifyPartnerApplyVaccineRecord(PartnerVaccineRecord record);

	/**
	 * 合伙人抗原分销申请已成交，通知合伙人
	 *
	 * @param record
	 * @return
	 */
	boolean notifyPartnerVaccineRecordDealed(PartnerVaccineRecord record);

	/**
	 * 合伙人提交合销云申请，通知合伙人胡晓峰
	 *
	 * @param record
	 * @return
	 */
	boolean notifyPartnerApplyMarketingCooperativeRecord(MarketingCooperativeRecord record);

	/**
	 * 合伙人合销云申请已成交，通知合伙人
	 *
	 * @param record
	 * @return
	 */
	boolean notifyMarketingCooperativeRecordDealed(MarketingCooperativeRecord record);

}
